from langgraph.prebuilt import create_react_agent
from backup.bochawebsearch import BochaWebSearchTool
from backup.debate_evidence_retriever import DebateEvidenceTool
from customize.get_ollama import GetOllama





model = GetOllama(ip=GetOllama.ailab_linux_ip, model_type=1, model_name="qwen2.5:14b")()
s_llm = GetOllama(ip=GetOllama.ailab_linux_ip, model_type=0, model_name="qwen2.5:3b")()
retriever = DebateEvidenceTool(llm=s_llm).tool
bochawebsearch = BochaWebSearchTool(llm=s_llm).tool
tools = [retriever, bochawebsearch]
sys_prompt = ("""你是一位中学生辩论选手，你使用的语言是中文。
                    如果你需要在辩论过程中使用到具体的实例或数据，请你调用你的工具进行搜索，你优先使用retriever工具,如果没有得到结果,可以调用 bochawebsearch工具。
                    不要捏造事实。回答问题不要模棱两可，要肯定或否定。""")

agent = create_react_agent(model, tools=tools, prompt=sys_prompt)
def print_stream(stream):
    for s in stream:
        message = s["messages"][-1]
        if isinstance(message, tuple):
            print(message)
        else:
            message.pretty_print()


inputs = {"messages": [("user", "作为否定手机进入校园的一方，你能证明手机对学生学习不利的影响吗?")]}

# print_stream(agent.stream(inputs, stream_mode="values"))
stream = agent.stream(inputs, stream_mode="values")
final_output = list(stream)[-1]
message = final_output["messages"][-1]
print(message.content if hasattr(message, 'content') else message)